/**
 * 编辑器管理器 - 简化版本，只管理编辑器实例
 */
class EditorManager {
  constructor() {
    this.editor = null;
  }

  /**
   * 设置编辑器实例
   */
  setEditor(editor) {
    this.editor = editor;
  }

  /**
   * 设置编辑器内容（从文件系统加载）
   */
  setValue(value) {
    if (!this.editor) {
      console.warn('编辑器实例未设置，将重试...');
      // 重试机制：等待编辑器初始化完成
      setTimeout(() => {
        this.setValue(value);
      }, 200);
      return;
    }

    // 延迟设置内容，确保编辑器完全渲染
    setTimeout(() => {
      try {
        if (this.editor && typeof this.editor.setValue === 'function') {
          this.editor.setValue(value);
        } else {
          console.error('编辑器 setValue 方法不可用:', this.editor);
        }
      } catch (error) {
        console.error('设置编辑器内容时出错:', error);
      }
    }, 50);
  }

  /**
   * 获取编辑器内容（用户当前输入的内容）
   */
  getValue() {
    if (!this.editor) {
      console.warn('编辑器实例未设置');
      return '';
    }
    return this.editor.getValue();
  }

  /**
   * 高亮错误行
   */
  highlightErrorLine(line, type = 'error') {
    if (this.editor?.highlightErrorLine) {
      this.editor.highlightErrorLine(line, type);
    }
  }

  /**
   * 清除错误高亮
   */
  clearErrorHighlight() {
    if (this.editor?.clearErrorHighlight) {
      this.editor.clearErrorHighlight();
    }
  }

}

const editorManager = new EditorManager();

export default editorManager;
